XCode x Swift x SwiftUI
學習 iOS 的開發有不少的門檻, 除了必須先有一台 Mac 電腦,還要熟悉 Swift 語法 與 iOS SDK。
好不容易入手了 Mac,第一個遇到的困難點,就是陌生的開發工具 XCode。
還好 不像學習「程式語言」,需要許多的「時間」與「耐心」,開發工具的使用是可以速成的。
而且 XCode 除了免費之外,還是 Apple 官方的開發工具,本身也是個具有特色且功能強大的軟體 !
這次的教程直接看影片會比較快了解功能作用,
此篇文章除了必要的說明外,只會簡單列表影片中出現的快捷鍵,以供後續遺忘時可以快速回顧。
這次的 XCode 開發指南,起源於我在 XCode 安裝 Vim 的插件 「 XVim2 」
https://github.com/XVimProject/XVim2
安裝時,必要的「證書簽入」動作與 MacOS 最新版本的 Big Sur 安全機制衝突,導致發生開發者帳號無法登入,也無法安裝到實體手機的狀況發生。
https://github.com/XVimProject/XVim2/issues/340
不得已只能重新安裝,並且在不熟悉工具的情況下,進行開發。
在尋找的過程中,我發現部分的 XCode 快捷鍵模式是屬於 emacs 類型
例如:
最大限度熟悉 XCode 的功能與快捷鍵也成為選項之一。
集合網路上搜集到的各種 XCode 使用技巧與對映我使用 IntelliJ 與 Vim 的經驗,整理從面板、導航一直到執行、除錯與自定義快捷鍵的各項功能。
我認為熟悉這個工具的使用,對於開發者來說會是個合理且划算的投資
(Apple 系列產品 : macOS、iOS、iPadOS、WatchOS、tvOS)
macOS Big Sur 11.2 版本
XCode 12.4 版本
所以只會針對這個語法與框架的專案,介紹相關的功能與快捷鍵操作,
如果沒有看到 Storyboard 的設計介面與 Object-C 語法的相關操作是正常的情況,這些部分這次就不會介紹。
(除錯區右下方的兩個圖示按鈕,可以決定哪一項的功能完整顯示)
一次性的關閉當前所有的輔助功能
(右上角列表圖示,開啟的輔助功能都一併關閉)
補充 :
cmd + shift + J :
此快捷鍵要在有開啟檔案的情況下才能作用,
因為該功能其實是在導航列中聚焦當前檔案,如果面板中沒有檔案的話只能用 cmd + 1。
編輯區塊的左上角,四個方格的圖示 :
此部分的快捷鍵功能 :
之前歷史
之後歷史
頂層的目錄向下尋找
同層級目錄
函式結構
個人覺得是個非常具有特色的功能
左側列表選擇檔案後,不像其他編輯器只是單純聚焦或者開啟分頁,而是會隨著選擇變換分頁中的內容,
要滑鼠點擊兩次才會加入到分頁上。
分頁的名稱上,有的文字是傾斜,有的文字是正常,傾斜文字就是會隨著選擇而變動的分頁。
可以理解為:
這個是文檔的快速預覽功能,需要再多一個動作(點擊兩下)
才會真正加入到分頁上。
分頁操作
• control + ` : 聚焦回編輯區塊
• cmd + shift + [ : 分頁向左切換
• cmd + shift + ] : 分頁向右切換
• cmd + w : 關閉當前分頁
• cmd + opt + w : 關閉其他分頁
(關閉全部分頁 : cmd + shift + w 已經有其他功能使用,替代分案 : 組合使用 cmd + opt + w , cmd + w)
開啟在輔助編輯器
• 滑鼠操作 : opt + 點擊
• 鍵盤操作 : cmd + opt + ,
• cmd + opt + shift + , : 選擇位置開啟
按住 opt 後 Enter 開啟 :
- cmd + shift + O : Open Quickly
- control + 1 : Related Items
- control + 2 : Previous Files History
- control + 3 : Next Files History
- control + 4 : Top Level Items
- control + 5 : Group Files
輔助編輯器操作
編輯區塊切換 :
- control + ` : 編輯視窗順序切換
- cmd + opt + ` : 功能區塊順序切換
- cmd + J : 選擇編輯區塊
聚焦於當前編輯區塊 :
- cmd + control + shift + enter
(暫時隱藏原先的視窗狀態並不會關閉,左上角的傾斜的雙箭頭圖示顯示狀態)
關閉輔助編輯器 :
- cmd + control + shift + W
cmd + T : 開啟視窗分頁
這個分頁拉出來也是一個獨立的編輯器,可以這樣理解:
這個分頁就是另外一個獨立的工作區,不會去共用側邊欄的導覽 或者 近期檔案的導航功能
視窗分頁操作
視窗分頁切換 :
- control + tab : 順序切換
- control + shift + tab : 反向切換
重新命名視窗分頁 :
- cmd + opt + shift + T
(可以一次性的使用 3 ~ 5 個分頁搭配重新命名,可以更好的組織邏輯與思緒)
關閉視窗分頁 :
- cmd + shift + W
文件項目 : 過濾器
關聯項目 : Callers & Callees
特殊情況 01 : 版本控制的狀態
點擊右上角的雙向箭頭圖示,會在當前畫面中呈現版本比對的訊息 :
(版本比對要關閉,不然快捷鍵無法生效)
特殊情況 02 : 編譯錯誤的狀態
使用選取文字搜尋
以專案為範圍
同樣可以使用填入文字的快捷鍵 :
- cmd + E : 搜尋框
- cmd + shift + E : 替代框
排版補充
註解補充
目前查到 XCode 中,已知的 emacs 類型 :
• control + P : 向上
• control + N : 向下
• control + B : 向左
• control + F : 向右
• control + A : 到行首
• control + E : 到行尾
• control + L : 跳轉到光標處
• control + D : 反向刪除字元
• control + K : 刪除到結尾文字
• control + T : 交換光標兩側文字
(之後若有發現更多的功能,會在此部分補充)
三種操作
01. 滑鼠操作
02. 鍵盤操作
03. 在範圍中編輯全部
該功能僅適用於單一檔案快速修改,若已經被外部參照,要使用 rename 才會連動修改
初始化方法補全
(光標要定位於類別名稱)
方法補全
修正連續技
三種操作
Debug 模式的部份,我使用的機率沒有很高,那為什麼要說明這兩項功能 ?
因為我查到的資料中有些開發者,由於 XCode 沒有書籤功能,所以會使用這個中斷點來替代使用
我個人是覺得如果能夠熟練的使用「分頁與視窗」功能,使用中斷點來替代,看起來就沒有那麼的必要。
按鍵「 cmd + , 」打開設置後 「 Key bindings 」
個人配置了6 + 1 的快捷鍵,來輔助開發。
6
頁面上下移動
區塊選取文字
重新命名
刪除單行
+1
XCode 配置檔路徑
/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
權限調整指令
sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
sudo chmod 777 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/
編輯配置檔
vim /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/IDETextKeyBindingSet.plist
(也可以使用 open 指令,用 XCode 介面編輯,或者直接進入到檔案目錄用其他編輯器修改)
複製指令
selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:
修改後的配置內容
<key>EnoxsIDE</key>
<dict>
<key>Duplicate Line</key>
<string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
</dict>
重啟後,設置
原本的預設中也有一個 Duplicate 的功能「cmd + D」
只是在編輯器中試不出來,所以只好把這個快捷鍵,移到新配置的 Duplicate Line
上述從基礎面板、檔案導航、分頁視窗、代碼導航、代碼編輯、執行除錯以及最後的自定義功能。
你應該已經知道 XCode 可以做的事情 遠比想像中的多更多。
不過熟悉開發工具的使用是開發中**「可選」的條件,卻並不是「必要」的條件**。
Side Project
在 XVim2 的插件發生問題以後,只知曉左右側與下方面板開關以及註解、排版、執行,
這六個快捷鍵的情況下,就已經陸續的完成將近七至八成的內容。
要完整的開發一個 iOS App 熟悉工具的使用只能錦上添花,但並不能完全替代所有必備的知識。
這些就只能透過足夠多的「時間」與「耐心」以及「正確的方法」(Gamma Ray 軟體工作室) 逐步累積知識。
我相信,最終肯定可以到達 愉快寫 Code 的程度 !
https://juejin.cn/post/6844903565614383118
https://www.jianshu.com/p/3d7cc7eaeb1e
https://medium.com/@stephyang/xcode-%E5%BF%AB%E6%8D%B7%E9%8D%B5%E6%95%B4%E7%90%86-ba653d0eff7e
https://www.notion.so/iOS-13-af1abc1bd9b440f5a67fdc1c70d529ab
https://www.appcoda.com.tw/xcode-shortcuts/